package com.xwaf.platform.system.api.service.auth;

import java.util.Set;

import com.baomidou.mybatisplus.plugins.Page;
import com.xwaf.platform.common.api.entity.ELUser;
import com.xwaf.platform.common.api.service.IELService;
import com.xwaf.platform.system.api.entity.auth.User;
import com.xwaf.platform.system.api.request.auth.UpdatePwdRequest;

/**
 * 
 * <p>
 * 用户表
 * <p>
 * 
 * @author 李聪 <br>
 * @email xwaf_love@yeah.net <br>
 * @since JDK 1.8<br>
 * @date 2019-5-25 12:21:34 <br>
 * @see 无<br>
 *      Copyright (c) 2019, xwaf_love@yeah.net All Rights Reserved.<br>
 */
public interface UserService extends IELService<User> {

	/**
	 * 
	 * <p>
	 * 分页查询
	 * <p>
	 * 
	 * @author 李聪 <br>
	 * @email xwaf_love@yeah.net <br>
	 * @since JDK 1.8<br>
	 * @date 2019年12月27日 下午8:37:49 <br>
	 * @see 无<br>
	 * @param page
	 *            分页参数
	 * @param user
	 *            条件参数
	 * @return 当前页数据
	 * @demo <br>
	 */
	Page<User> selPageList(Page<User> page, User user);

	User getUserOne(String userId);

	/**
	 * 
	 * <p>
	 * 用户权限列表
	 * <p>
	 * 
	 * @author 李聪 <br>
	 * @email xwaf_love@yeah.net <br>
	 * @since JDK 1.8<br>
	 * @date 2019年12月27日 下午8:37:28 <br>
	 * @see 无<br>
	 * @param userId
	 * @return
	 * @demo <br>
	 */
	Set<String> getUserPermissions(String userId);

	/**
	 * 
	 * <p>
	 * 用于登陆查询,这里不允许清空密码
	 * <p>
	 * 
	 * @author 李聪 <br>
	 * @email xwaf_love@yeah.net <br>
	 * @since JDK 1.8<br>
	 * @date 2019年12月31日 下午4:35:29 <br>
	 * @see 无<br>
	 * @param username
	 * @return
	 * @demo <br>
	 */
	User queryByUserName(String username);

	/**
	 * 
	 * <p>
	 * 修改密码
	 * <p>
	 * 
	 * @author 李聪 <br>
	 * @email xwaf_love@yeah.net <br>
	 * @since JDK 1.8<br>
	 * @date 2020年1月4日 上午11:43:36 <br>
	 * @see 无<br>
	 * @param newPassword
	 *            新密码
	 * @param user
	 * @return
	 * @demo <br>
	 */
	boolean updateUserPassword(String newPassword, ELUser user);

}
